﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.Logica.Clases;
using vudu.Logica.Excepciones;
using vudu.EnlaceDatos.SqlServer;

namespace vudu.PaginasWeb.G5Materia
{
    public partial class ConsultarHorarioSeccionMateria : System.Web.UI.Page
    {
        private Materia materia;
        private List<HorarioDeClase> horarios;
        private List<SeccionMateria> secciones;

        protected void Page_Load(object sender, EventArgs e)
        {   
            //OBJETO SESSION 
            string miRol = (string)Session["rol"];
            if (miRol != "Escuela")
                Response.Redirect("../G3AccesoSistema/InicioSistema.aspx");
            Escuela esc = (Escuela)Session["Usuario"];
            nombreEscuela.Text = "Escuela: " +  esc.NombreEscuela;
            if (!IsPostBack)
            {
                String url = Request.Url.PathAndQuery;
                String[] s = url.Split('=');
                String codigo = s[1];
                codigo = codigo.Replace("%20", " ");
                try
                {
                    SqlServerMateria consultar = new SqlServerMateria();
                    materia = consultar.ConsultarMateria(codigo, 1);
                    secciones = new List<SeccionMateria>();
                    cargarSeccion();
                    String _seccion = secciones.ElementAt(0).IdSeccionMateria.ToString();
                    horarios = new SqlServerHorarioClase().ConsultarTodosLosHorariosDeSeccion(_seccion);
                    LlenarLabel();
                    LlenarHorario(horarios);

                }
                catch (Exception)
                {
                    //LabelError.Text = "Operacion Fallida: No hay datos";
                    //LabelError.Visible = true;
                    //LabelError.CssClass = "transaccionFallida";
                    //LabelError.ForeColor = System.Drawing.Color.Red;
                }
            }
        }

        public void cargarSeccion()
        {
            secciones = new SqlServerSeccionMateria().ConsultarSeccionesDeUnaMateria(materia);
            SeleccionarSeccion.DataSource = secciones;
            foreach (SeccionMateria sec in secciones)
            {
                SeleccionarSeccion.Items.Add(sec.IdSeccionMateria + ": " + sec.Materia.Nombre + "- Seccion: " + sec.Codigo);
            }
        }

        public void LlenarHorario(List<HorarioDeClase> lista)
        {
            if (lista.Count == 0)
            {
                LabelError.Text = "Operacion Fallida: No hay horarios para esta seccion";
                LabelError.Visible = true;
                LabelError.CssClass = "transaccionFallida";
                LabelError.ForeColor = System.Drawing.Color.Red;
            }
            else
            {
                foreach (HorarioDeClase h in lista)
                {
                    if (h.Dia.Contains("Lunes"))
                    {
                        Label_HI_Lunes.Text = h.HoraInicio.ToString("hh:mm tt");
                        Label_HF_Lunes.Text = h.HoraFin.ToString("hh:mm tt");
                        Label_Salon_Lunes.Text = h.SalonDeClase.Nombre;
                    }
                    else if (h.Dia.Contains("Martes"))
                    {
                        Label_HI_Martes.Text = h.HoraInicio.ToString("hh:mm tt");
                        Label_HF_Martes.Text = h.HoraFin.ToString("hh:mm tt");
                        Label_Salon_Martes.Text = h.SalonDeClase.Nombre;
                    }
                    else if (h.Dia.Contains("Miercoles"))
                    {
                        Label_HI_Miercoles.Text = h.HoraInicio.ToString("hh:mm tt");
                        Label_HF_Miercoles.Text = h.HoraFin.ToString("hh:mm tt");
                        Label_Salon_Miercoles.Text = h.SalonDeClase.Nombre;
                    }
                    else if (h.Dia.Contains("Jueves"))
                    {
                        Label_HI_Jueves.Text = h.HoraInicio.ToString("hh:mm tt");
                        Label_HF_Jueves.Text = h.HoraFin.ToString("hh:mm tt");
                        Label_Salon_Jueves.Text = h.SalonDeClase.Nombre;
                    }
                    else if (h.Dia.Contains("Viernes"))
                    {
                        Label_HI_Viernes.Text = h.HoraInicio.ToString("hh:mm tt");
                        Label_HF_Viernes.Text = h.HoraFin.ToString("hh:mm tt");
                        Label_Salon_Viernes.Text = h.SalonDeClase.Nombre;
                    }
                }
            }
        }

        public void LlenarLabel()
        {

            //Inicializar Labels HF
            Label_HF_Lunes.Text = "--";
            Label_HF_Martes.Text = "--";
            Label_HF_Miercoles.Text = "--";
            Label_HF_Jueves.Text = "--";
            Label_HF_Viernes.Text = "--";

            //Inicializar Labels HI
            Label_HI_Lunes.Text = "--";
            Label_HI_Martes.Text = "--";
            Label_HI_Miercoles.Text = "--";
            Label_HI_Jueves.Text = "--";
            Label_HI_Viernes.Text = "--";

            //Inicializar Labels Salon
            Label_Salon_Lunes.Text = "--";
            Label_Salon_Martes.Text = "--";
            Label_Salon_Miercoles.Text = "--";
            Label_Salon_Jueves.Text = "--";
            Label_Salon_Viernes.Text = "--";
        }

        protected void BotonConsultar_Click(object sender, EventArgs e)
        {
            String[] s = SeleccionarSeccion.SelectedValue.Split(':');
            String _seccion = s[0];
            horarios = new SqlServerHorarioClase().ConsultarTodosLosHorariosDeSeccion(_seccion);
            LabelError.Text = "";
            LabelError.Visible = false;
            LlenarLabel();
            LlenarHorario(horarios);
        }

        protected void BotonRegresar_Click(object sender, EventArgs e)
        {
            Response.Redirect("SeleccionarMateriaHorarioConsulta.aspx");

        }
    }
}